import pika


def start_mq_listener():
    queue_name = 'my_queue'

    # 连接 RabbitMQ
    connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
    channel = connection.channel()

    # 声明队列（如果生产者没创建，会自动创建）
    channel.queue_declare(queue=queue_name, durable=True)

    # 定义消息处理函数
    def callback(ch, method, properties, body):
        message = body.decode()
        print(f"接收到消息: {message}")
        # 可在此操作 Django 模型，比如写数据库
        ch.basic_ack(delivery_tag=method.delivery_tag)

    # 开始消费
    channel.basic_consume(queue=queue_name, on_message_callback=callback, auto_ack=False)
    print("开始监听 RabbitMQ 消息...")
    channel.start_consuming()
